МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА, кафедра “Захисту інформації”
ЗВІТ
З ЛАБОРАТОРНОЇ РОБОТИ № 4
З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ”
РОБОТА З ТЕКСТОВИМИ ФАЙЛАМИ.
СИМВОЛЬНІ ТА РЯДКОВІ ЗМІННІ
кафедра “Автоматика і
телемеханіки”
Львів – 2006
Мета роботи - вивчити види файлів, стандартні процедури і функції мови Турбо-Паскаль для роботи з файлами, навчитися складати та відлагоджувати програми для роботи з тестовими файлами. Навчитись використовувати символьні і рядкові змінні для роботи з текстовими файлами.
ЗАВДАННЯ
1. Ознайомитися з основними типами файлів і їх описом.
2. Вивчити основні процедури і функції для роботи з текстовими файлами.
3. Ознайомитись зі символьними і рядковими змінними.
4. Вивчити основні процедури та функції для роботи із символьними і рядковими змінними.
5. Дано текстовий файл, в якому міститься програма мовою Турбо Паскаль (Лабораторна робота №3). Скласти блок-схеми алгоритмів та програми мовою Турбо-Паскаль для обробки текстового файлу з використанням розроблених процедур та функцій для роботи зі стрічками. Оформити виконання одного із завдань у вигляді підпрограми. Словами є слова в коментарях, назви ідентифікаторів, зарезервовані слова, які розділяються між собою згідно із синтаксисом мови Турбо Паскаль. Дані для роботи беруться з табл.1 за вказівкою викладача.
Таблиця 1
23
Сформувати і вивести на екран текстовий файл в якому усі літери які зустрічаються замінити послідовно на літери в алфавітному порядку. Вивести на екран непарні рядки файлу.
Програма, що використовується
PROGRAM lab3;
uses crt;
const f=5; l=5;
type matrix=array[1..f,1..l]of integer;
matrix2=array[1..f]of integer;
var a:matrix;
summa:matrix2;
i,j,m,n,k:integer;
PROCEDURE SORTING;
var g:integer;
begin
for m:=1 to l do
begin
i:=2;
repeat
j:=1;
repeat
if a[i,m]<=a[j,m] then
begin
k:=i;
g:=a[i,m];
repeat
a[k,m]:=a[k-1,m];
k:=k-1;
until not (k>j);
a[j,m]:=g;
j:=i;
end
else
begin
j:=j+1;
end;
until not (j<i);
i:=i+1;
until not (i<=f);
end;
end;
FUNCTION suma (a:matrix;i:integer):integer;
var sum,x:integer;
begin
sum:=0;
for m:=1 to l do
begin
if i<m then
sum:=sum+a[i,m];
suma:=sum;
end;
end;
FUNCTION gmean(summa:matrix2;i:integer):real;
var gm:real;
begin
gm:=1;
for i:=1 to f-1 do
gm:=gm*summa[i];
gmean:=exp(1/i*ln(gm));
end;
begin
clrscr;
for i:=1 to f do {reading of matrix}
for m:= 1 to l do
begin
write('a[',i,',',m,']=');
read(a[i,m]);
end;
SORTING;
for i:=1 to f do {showing of sorted matrix}
for m:=1 to l do
begin
write(a[i,m], ' ' );
writeln;
end;
readln;
for i:=1 to f-1 do
begin
summa[i]:=suma(a,i);
writeln('SUMA[',i,']=',summa[i]);
end;
writeln('GMEAN=',gmean(summa,i):4:2);
readln;
end.
Текст програми мовою Pascal
Program lab4;
uses crt;
var ofile,filenew:text;
temp:string;
ch:char;
Procedure replace (var ch:char;var temp:string);
var i:byte;
begin
for i:=1 to length(temp) do
begin
if((temp[i]<='z')and(temp[i]>='a'))or((temp[i]<='Z')and(temp[i]>='A'))
then
begin
temp[i]:=ch;
if ch='z' then
ch:='a'
else ch:=succ(ch);
end;
end;
end;
Begin
clrscr;
assign(ofile,'lab3.pas');
assign(filenew,'new.txt');
reset(ofile);
rewrite(filenew);
ch:='a';
while not eof(ofile) do
begin
readln(ofile,temp);
replace(ch,temp);
writeln(filenew,temp);
end;
close(filenew);
close(ofile);
reset(filenew);
while not eof (filenew) do
begin
readln(filenew);
readln(filenew) ;
writeln;
while not eoln (filenew) do
begin
read(filenew,ch);
write(ch);
end;
end;
close(filenew);
readln;
reset(ofile);
while not eo...